<?php

namespace App\Http\Controllers\admin;

use Illuminate\Http\Request;
use \DB;
use App\Http\Requests;
use App\Http\Controllers\Controller;
use \App\Http\Requests\UserPostRequest;


class FirendController extends Controller
{   
    //隐式控制器中间件(在该隐式控制器的方法里加上如下代码,就可以限定该隐式控制器的所有方法)
    protected $middleware = ['App\Http\Middleware\LogMiddleware'=>[]];
    
    /**
     * 跳转到广告添加页面
     *
     * @return vodi
     */
    public function getAdd()
    {
        return view('admin.firend.add');
    }

    /**
     * 跳转到广告列表页面
     * $num 页面显示条数
     * $firends 
     * @return vodi
     */
    public function getIndex(Request $request)
    {
         //显示获取显示条数
        $num = $request->input('num',10);
        //判断连接名是否查询
        if($request->input('keyword')){
            //查找数据库链接信息
            $firends = DB::table('firendlink')
            ->where('linkname','like','%'.$request->input('keyword').'%')
            ->orderBy('ordernum', 'asc')
            ->paginate($num);
        }else{
            $firends = DB::table('firendlink')->orderBy('ordernum', 'asc')->paginate($num);
            // dd($types);
        }
        // dd($firends);
        //获取参数
        $all = $request->all();
        //返回路径和参数
        return view('admin.firend.index',['firends'=>$firends,'all'=>$all]);
    } 

    /**
     * 友情信息添加到数据库
     * $data 友情链接信息 
     * $res 数据库影响值 
     * @return vodi
     */
    public function postInsert(Request $request)
    {
        //获取友情链接提交信息
        $data = $request->except(['_token']);
        //判断提交信息不能为空
        if($data['linkname'] == '' || $data['url'] == '' || $data['content'] == '' || $data['ordernum'] == '' || $data['logo'] == ''){
            return back()->with('error','填写信息不能为空');
        }
        //调用函数
        $data['logo'] = $this->upload($request);
        //添加到数据库
        $res = DB::table('firendlink')->insert($data);
        //判断
        if($res){
            return redirect('admin/firend/index');
        }else{
            return back()->withInput();
        }
    }

    /**
     * 友情链接上传函数
     * $name 随机名
     * $suffix 文件后缀名
     * $size 文件大小
     * $arr 文件类型
     * @return $name.$suffix
     */
    public function upload($request)
    {
        //判断海报是否上传
        if($request->hasFile('logo')){
            //随机生成文件名
            $name = md5(time()+rand(100000,999999));
            //获取文件后缀名
            $suffix = $request->file('logo')->getClientOriginalExtension();
            //获取海报大小
            $size = $request->file('logo')->getsize();
            //判断海报是否过大
            if($size>2024000){
                return back()->with('error','上传文件过大');
            }
            //文件格式
            $arr = ['png','jpg','jpeg','gif'];
            //判断文件格式是否正确
            if(!in_array($suffix,$arr)){
                return back()->with('error','上传文件格式不正确');
            }
            //上传到指定路径
            $request->file('logo')->move('./public/logo/',$name.'.'.$suffix);
            //返回路径
            return '/public/logo/'.$name.'.'.$suffix;
        }
    }

    /**
     * ajax删除友情链接
     * $id 链接id
     * $res 影响行数
     * @return vodi
     */
    public function postDelete(Request $request)
    {
        //获取id
        $id = $request->input('id');
        //链接数据库删除
        $res = DB::table('firendlink')->where('id',$id)->delete();
        echo $res;
    }

    /**
     * 跳转到修改链接页面
     * $id 获取id
     * $res 查询链接信息
     * @return $res
     */
    public function getUp(Request $request)
    {
        //获取id
        $id = $request->input('id');
        //数据库根据id查询信息
        $res = DB::table('firendlink')->where('id',$id)->first();
        // dd($res);
        //返回到修改页面
        return view('admin.firend.update',['res'=>$res]);
    }


    /**
     * 修改友情链接数据
     * $id 获取id
     * $res 查询链接信息
     * @return vodi
     */
    public function postUpdate(Request $request)
    {
        //获取信息
        $data = $request->except(['_token']);
        //判断提交信息不能为空
        if($data['linkname'] == '' || $data['url'] == '' || $data['content'] == '' || $data['ordernum'] == ''){
            return back()->with('error','填写信息不能为空');
        }
        //判断是否上传图片
        if($request->hasFile('logo')){
            //调用函数
            $data['logo'] = $this->upload($request);
        }
        // dd($data);
        //数据库根据id查询信息
        $res = DB::table('firendlink')->where('id',$data['id'])->update($data);
        // dd($res);
        //返回到修改页面
        if($res){
            return redirect('admin/firend/index');
        }else{
            return back()->with('error','修改失败')->withinput();
        }
        
    }

    
}   
